#pragma once

#include "Types.h"

namespace Vortex { namespace Wrapper { namespace DInput {

	///<summary>DirectInput8 wrapper</summary>
	public ref class DirectInputDevice8 {
		IDirectInputDevice8W* _handle;

	public:

		DirectInputDevice8(IDirectInputDevice8W* handle);

		~DirectInputDevice8();

		///<summary>Direct Input Device handle</summary>
		property IntPtr Handle { IntPtr get() { return IntPtr(_handle); } }

		property IDirectInputDevice8W* NativeHandle { IDirectInputDevice8W* get() { return _handle; } }

		///<summary>Aquires device to be used for input state reading</summary>
		HResult Acquire();

		///<summary>Sets the cooperative level between window and device</summary>
		HResult SetCooperativeLevel(IntPtr hWnd, DICooperativeLevel coopLevel);

	};

} } }